﻿namespace Socket.Core
{
    using System;

    public interface ISession : IDisposable
    {
        event EventHandler Released;

        string GetSessionId();
        void InitReceive();
        void Release();
        bool Send(IMessage command);

        bool IsConnected { get; }

        IReceiveInfo ReceiveData { get; set; }

        string RemoteEndPoint { get; }

        string RemoteIp { get; }

        object SAEAOrEndPoint { get; }

        string SessionId { get; }

        Socket.Core.UserToken UserToken { get; }
    }
}

